#!/bin/bash

RED='\e[0;31m'
GREEN='\e[1;32m'
NC='\e[0m' # No Color

TITLE="Courbes des algorithmes Ford-Fulkersion, Edmonds-Karp, Dinic et Capacity scaling"
EXT="png"
SUFF="presentation"
OUTPUT="pngcairo"

declare -a FILEIN=("outputs/densite0.dat" "outputs/densite1.dat" "outputs/densite2.dat" "outputs/densite3.dat" "outputs/densite4.dat" )
declare -a FILEOUT=("outputs/densite0$SUFF.$EXT" "outputs/densite1$SUFF.$EXT" "outputs/densite2$SUFF.$EXT"  "outputs/densite3$SUFF.$EXT" "outputs/densite4$SUFF.$EXT")
declare -a DENSITE=("minimale" "de 25%" "de 50%" "de 75%" "maximale")
declare -a COLOR=("green" "blue" "dark-red" "orange")
declare -a ALGO=("Edmonds-Karp" "Dinic" "Ford-Fulkerson" "Capacity scaling")


for i in `eval echo {0..$((${#FILEIN[@]}-1))}` #Pour chaque index du tableau des fichiers
do
    declare -a value=(`while read -r line; do if [[ $line != \#* ]]; then echo $line; fi ; done < ${FILEIN[$i]}`)
    if  [ ${#value[@]} -ne 0 ] #Si non-vide
    then
	echo "Courbes des graphes de densité ${DENSITE[i]}"
	ap=false
	command="set terminal $OUTPUT; set output '/dev/null'; set xtics border in scale 1,0.5 nomirror norotate autojustify; set ytics border in scale 1,0.5 nomirror norotate autojustify; set key left; set title '$TITLE'; set xlabel 'Nombre de sommets'; set ylabel 'Temps en ms'; "
	for j in `eval echo {0..$((${#ALGO[@]}-1))}` #Pour chaque index du tableau des algos
	do
	    if [[ "${value[$((j+1))]}" != "-1" ]] #Si la courbe est définie
	    then
		echo -e "\tCréation de la courbe de ${ALGO[j]}"
		if [ "$ap" == false ]
		then
		    command=$command$"plot '${FILEIN[i]}' using (\$1):(\$$(($j+2))<0?1/0:\$$(($j+2))) lw 1 lc rgb '${COLOR[j]}' title '${ALGO[j]}' smooth bezier; "
		    ap=true
		else
		    command=$command"replot '${FILEIN[i]}' using (\$1):(\$$(($j+2))<0?1/0:\$$(($j+2))) lw 1 lc rgb '${COLOR[j]}' title '${ALGO[j]}' smooth bezier;"
		fi
	    fi
	done
	command=$command"set terminal $OUTPUT size 800,640 ; set output '${FILEOUT[i]}'; replot; unset output"
	#echo $command
	if [ "$ap" == true ]
	then
	    gnuplot <<EOF
$command
EOF
	    echo -e "\t${GREEN}Fichier '${FILEOUT[i]}' créé !${NC}"
	else
	    echo -e "${RED}Rien à créer, le fichier ${FILEIN[i]} ne contient pas de données exploitables${NC}"
	fi
    else
	echo -e "${RED}Erreur dans le fichier de données ! Aucune information...${NC}"
    fi
done
